﻿Imports System.Data.Odbc

Public Class clsSzukanieZlecenie

#Region "Attributes"

    Dim mvarZlecenia As New DataTable("Zlecenia")

#End Region

#Region "Properties"

    Public Property Zlecenia() As DataTable
        Get
            Return mvarZlecenia
        End Get
        Set(ByVal value As DataTable)
            mvarZlecenia = value
        End Set
    End Property

#End Region

#Region "Methods"

    Public Sub New()

        UtworzTabele()

    End Sub

    Private Sub UtworzTabele()

        With mvarZlecenia.Columns
            .Add("id_zlecenia", GetType(String))
            .Add("numer_zlecenia", GetType(String))
            .Add("klient_nazwa", GetType(String))
            .Add("status_nazwa", GetType(String))
            .Add("data_zamowienia", GetType(String))
            .Add("termin", GetType(String))
        End With

    End Sub

    Public Sub Search(ByVal lvarDbHolder As clsDataBase, ByRef ErrorHandler As clsErrorHandler, ByVal Zapytanie As String)

        Dim lvarNewRow As DataRow
        Dim lvarZapytanie As String

        lvarZapytanie = Zapytanie

        Dim lvarReader As OdbcDataReader = Nothing
        If lvarDbHolder.IsOpen Then
            Dim lvarSqlRunner As New clsSqlRunner(lvarDbHolder, "queries_application_oem", "cls_zlecenie", 1, VAR_ERROR_HANDLER)
            'SELECT zlecenie.id, zlecenie.numer, klient.nazwa_skrocona, status.nazwa, zlecenie.data_zamowienia, zlecenie.termin FROM oem.zlecenie, oem.pracownik, oem.klient, oem.status, oem.status_wysylki WHERE pracownik.id = zlecenie.pracownik_id AND zlecenie.klient_id = klient.id AND zlecenie.status_id = status.id AND zlecenie.status_wysylki_id = status_wysylki.id AND " & lvarZapytanie & " GROUP BY zlecenie.id, klient.nazwa_skrocona, status.nazwa ORDER BY zlecenie.numer DESC;

            With lvarSqlRunner
                .AddParameter("p_zapytanie", Zapytanie)
                lvarReader = .ExecuteQuery()
            End With

            If lvarReader.HasRows Then
                While lvarReader.Read
                    lvarNewRow = mvarZlecenia.NewRow()
                    With lvarNewRow
                        .Item("id_zlecenia") = IIf(IsDBNull(lvarReader.Item("id")), "", lvarReader.Item("id"))
                        .Item("numer_zlecenia") = IIf(IsDBNull(lvarReader.Item("numer")), "", lvarReader.Item("numer"))
                        .Item("klient_nazwa") = IIf(IsDBNull(lvarReader.Item("nazwa_skrocona")), "", lvarReader.Item("nazwa_skrocona"))
                        .Item("status_nazwa") = IIf(IsDBNull(lvarReader.Item("nazwa")), "", lvarReader.Item("nazwa"))
                        .Item("data_zamowienia") = IIf(IsDBNull(lvarReader.Item("data_zamowienia")), "", lvarReader.Item("data_zamowienia"))
                        .Item("termin") = IIf(IsDBNull(lvarReader.Item("termin")), "", lvarReader.Item("termin"))
                    End With
                    mvarZlecenia.Rows.Add(lvarNewRow)
                End While
            End If

        End If

    End Sub

    Public Function SzukajNumeru(ByVal lvarDbHolder As clsDataBase, ByRef ErrorHandler As clsErrorHandler, ByVal Zapytanie As Integer) As Integer

        Dim lvarWynik As Integer

        Dim lvarReader As OdbcDataReader = Nothing
        If lvarDbHolder.IsOpen Then
            Dim lvarSqlRunner As New clsSqlRunner(lvarDbHolder, "queries_application_oem", "cls_zlecenie", 2, VAR_ERROR_HANDLER)
            'SELECT zlecenie.numer FROM oem.zlecenie WHERE zlecenie.id = " & lvarZapytanie & ";

            With lvarSqlRunner
                .AddParameter("p_zapytanie", CStr(Zapytanie))
                lvarReader = .ExecuteQuery
            End With
            If lvarReader.HasRows Then
                While lvarReader.Read
                    lvarWynik = CInt(IIf(IsDBNull(lvarReader.Item("numer")), "", lvarReader.Item("numer")))

                End While

            End If
        End If

        Return lvarWynik

    End Function

#End Region

End Class